package com.csyf.manager.service;

import com.csyf.manager.entity.SysUser;
import com.csyf.manager.utils.ResultEntity;
import com.csyf.manager.utils.page.JqGridVo;

import java.util.List;

/**
 * @Author: casper
 * @Description: 用户Service
 * @Date: Created in 2018/11/19 11:14
 */
public interface SysUserService {

    /**
     * 根据用户名查询用户
     * @param username
     * @return user
     */
    SysUser selectByUsername(String username);

    /**
     * 更新用户最近登录时间
     * @param principal
     */
    void updateLastLoginTime(SysUser principal);

    /**
     * 用户列表
     * @param vo
     * @param page
     * @param rows
     * @return
     */
    JqGridVo queryUserList(SysUser vo, Integer page, Integer rows);

    /**
     * 新增用户
     * @param userForm
     * @return
     */
    int addUser(SysUser userForm);

    /**
     * 新增用户并获取用户Id
     * @param userForm
     * @return
     */
    void addUserAndGetId(SysUser userForm);

    /**
     * 根据用户id查询用户
     * @param userId
     * @return
     */
    SysUser selectByUserId(String userId);

    /**
     * 根据用户id更新用户信息
     * @param userForm
     * @return
     */
    int updateByUserId(SysUser userForm);

    /**
     * 根据用户id修改密码
     * @param user
     */
    void updatePwdByUserId(SysUser user);

    /**
     * 根据用户id集合批量更新用户状态
     * @param userIds
     * @param status
     * @return int
     */
    int updateStatusBatch(List<String> userIds, Integer status);

    /**
     * 根据用户id分配角色集合
     * @param userId
     * @param roleIdsList
     * @return
     */
    void addAssignRole(Long userId, List<String> roleIdsList);
}
